Animations
Contents
%config InlineBackend.rc = {"figure.dpi": 72, 'figure.figsize': (6.0, 4.0)}
%matplotlib inline
import ase
import matplotlib.pyplot as plt
import numpy as np
from IPython.display import HTML
import abtem
abtem.config.set({"local_diagnostics.progress_bar": True});
Animations#
XXX
Show code cell source
probe = abtem.Probe(
semiangle_cutoff=30,
defocus=60,
astigmatism=np.linspace(-70, 70, 50),
astigmatism_angle=np.pi / 4,
gpts=256,
extent=10,
energy=200e3,
)
probes = probe.build().complex_images().compute()
[########################################] | 100% Completed | 220.67 ms
XXX
visualization = probes.show(cmap="hsluv", display=False, cbar=True, vmin=0, vmax=8e-5)
visualization.adjust_figure_aspect()
visualization.set_panel_labels(
labels="metadata", frameon=False, prop={"color": "w", "fontsize": 12}
)
animation = visualization.animate(adjust_scale=False, interval=100)
HTML(animation.to_jshtml())
Ensemble of probe thickness series#
XXX
Show code cell source
probe = abtem.Probe(
semiangle_cutoff=30,
defocus=np.linspace(0, 100, 3),
gpts=256,
energy=200e3,
)
atoms_cell = ase.build.bulk("Si", cubic=True)
atoms = atoms_cell * (3, 3, 20)
potential = abtem.Potential(atoms, exit_planes=1)
images = probe.multislice(potential).intensity()
images.compute()
[########################################] | 100% Completed | 2.20 sms
<abtem.measurements.Images object at 0x0000017DF0A69930>
XXX
visualization = images.show(
display=False,
explode=(1,),
# axes_types=None, #["index", "explode"],
figsize=(12, 8),
common_color_scale=True,
)
visualization.set_column_titles("")
visualization.adjust_figure_aspect()
visualization.set_panel_labels(
labels="metadata", frameon=False, prop={"color": "w", "fontsize": 12}
)
animation = visualization.animate(adjust_scale=True, interval=60)
HTML(animation.to_jshtml())
Diffraction spots#
XXX
from abtem.tilt import precession_tilts
atoms_cell = ase.build.bulk("Si", cubic=True)
atoms = atoms_cell * (1, 1, 50)
potential = abtem.Potential(atoms, sampling=0.05, slice_thickness=2)
wave = abtem.PlaneWave(energy=100e3)
tilts = precession_tilts(10, 100)
wave.tilt = tilts
measurements = wave.multislice(potential).compute()
spots = measurements.diffraction_patterns().index_diffraction_spots(
cell=atoms_cell.cell, threshold=1e-5
)
[########################################] | 100% Completed | 14.43 ss
XXX
from matplotlib.colors import ListedColormap
cmap = ListedColormap(["w"])
XXX
measurements.axes_metadata[0].label = "precession"
measurements.axes_metadata[0].values = [
np.arctan2(tilt[1], tilt[0]) / np.pi * 180 + 180 for tilt in tilts
]
measurements.axes_metadata[0].units = "deg."
XXX
visualization = (
spots.crop(50)
.block_direct()
.show(
explode=False,
scale=0.4,
power=0.5,
common_color_scale=True,
figsize=(6, 6),
vmax=0.08,
display=False,
cmap="viridis",
)
)
visualization.adjust_figure_aspect()
visualization.set_panel_labels(
labels="metadata", frameon=False, prop={"color": "w", "fontsize": 14}
)
for ax in np.array(visualization.axes).ravel():
ax.set_facecolor("k")
animation = visualization.animate(adjust_scale=False, interval=20)
HTML(animation.to_jshtml())